package com.atguigu.daijia.gateway.filter;

import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.Ordered;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;

/**
 * <p>
 * 全局Filter，统一处理会员登录与外部不允许访问的服务
 * </p>
 *
 */
@Slf4j
@Component
public class AuthGlobalFilter implements GlobalFilter, Ordered {


    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        // 编写过滤器逻辑
        System.out.println("未登录，无法访问");
        return chain.filter(exchange);
    }

    @Override
    public int getOrder() {
        return 0;
    }
}


//笔记
//getaway的使用呢首先是引入依赖，阿里的
//接着自然是启动类
//之后还要有配置类，里面配置路由规则和nacos地址，路由的地址他会从nacos的注册中心去拉取服务列表
//这个项目配置的路由规则有4个，3个web端的，还有一个是支付模块
/*
routes:
        # web 接口
        - id: web-customer
        uri: lb://web-customer
        predicates:
                - Path=/customer-api*/
        /**
         filters:
         - StripPrefix=1
         - id: web-driver
         uri: lb://web-driver
         predicates:
         - Path=/driver-api/**
         filters:
         - StripPrefix=1
         - id: web-mgr
         uri: lb://web-mgr
         predicates:
         - Path=/mgr-api/**
         filters:
         - StripPrefix=1
         - id: service-payment
         uri: lb://service-payment
         predicates:
         - Path=/payment/**
*/

//全局过滤器来实现登录校验，比较简单
